package com.example.simpledemo1.aggregate;

import java.util.*;

/**
 * Created with IntelliJ IDEA.
 *
 * @Author: ZhangLiang
 * @Date: 2021/06/10/14:44
 * @Description:  集合遍历迭代器demo
 */
public class IteratorDemo {


    /**
     * 遍历Map
     */
    public static void mapIterator(){
        Map<Integer,String> map=new HashMap<>();
        map.put(1,"java");
        map.put(2,"C++");
        map.put(3,"HTML");

        Iterator<Map.Entry<Integer,String>> iterator=map.entrySet().iterator();
        while (iterator.hasNext()){
            Map.Entry<Integer,String> entry=iterator.next();
            System.out.println(entry.getKey()+"="+entry.getValue());
        }
    }

    /**
     * 不要再foreach循环进行集合元素的修改操作。remove元素使用Iterator方式，如果并发，需要对Iterator对象加锁
     */
    public static void update(){
        List<String> list=new ArrayList<>();
        list.add("1");
        list.add("2");
        list.add("3");
        Iterator<String> iterator=list.listIterator();
        while (iterator.hasNext()){
            String item=iterator.next();
            if (item=="2"){
                iterator.remove();
            }
        }
        System.out.println(list.size());
    }


    public static void main(String[] args) {

        // 测试遍历Map
        mapIterator();
        // 移除集合元素
        update();
    }
}
